package br.com.beiramar.entity.pessoa.usuario;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import br.com.beiramar.entity.pessoa.Pessoa;

@Entity
@Table(name = "Usuario", schema = "ev")
@NamedQueries({ @NamedQuery(name = "usuario.Dados", query = "Select Object(result) from UsuarioPessoa result where result.login = :id") })
public class UsuarioPessoa implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "idUsuario")
	private Integer idUsuario;

	@Column(name = "Perfil_idPerfil")
	private Integer idPerfil;

	@Column(name = "Login")
	private String login;

	@Column(name = "Senha")
	private String senha;

	@OneToOne(mappedBy = "usuario", fetch=FetchType.LAZY)
	private Pessoa pessoa;	

	@Column(name = "usuarioCodigoConta")
	private String usuarioCodigoConta;
	
	

	
	public Integer getIdPerfil() {
		return idPerfil;
	}

	public void setIdPerfil(Integer idPerfil) {
		this.idPerfil = idPerfil;
	}

	public Integer getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(Integer idUsuario) {
		this.idUsuario = idUsuario;
	}
	
	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	
	public String getUsuarioCodigoConta() {
		return usuarioCodigoConta;
	}

	public void setUsuarioCodigoConta(String usuarioCodigoConta) {
		this.usuarioCodigoConta = usuarioCodigoConta;
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((idUsuario == null) ? 0 : idUsuario.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		UsuarioPessoa other = (UsuarioPessoa) obj;
		if (idUsuario == null) {
			if (other.idUsuario != null)
				return false;
		} else if (!idUsuario.equals(other.idUsuario))
			return false;
		return true;
	}
}
